package controller;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

import util.Comandos;
import util.FunctionsUtils;
import view.MasaFrame;
import view.PrincipalFrame;

public class MasaController implements ActionListener {

	private MasaFrame vista;

	public MasaController(PrincipalFrame principal) {
		this.vista = new MasaFrame(principal);
		inicializar();
	}

	public void inicializar() {
		vista.setTitle("MasaFrame");
		vista.getContentPane().setPreferredSize(vista.getSize());
		vista.pack();
		vista.setLocationRelativeTo(null);
		vista.setVisible(true);
		vista.setActionListeners(this);
	}

	public void actionPerformed(ActionEvent e) {
		String comando = e.getActionCommand();
		switch (Comandos.valueOf(comando)) {

		case CAPTURA:
			try {
				Toolkit tool = Toolkit.getDefaultToolkit();
				Dimension d = tool.getScreenSize();
				Rectangle rect = new Rectangle(d);
				Robot robot = new Robot();
				Thread.sleep(2000);
				File f = new File("screenshot.jpg");
				BufferedImage img = robot.createScreenCapture(rect);
				ImageIO.write(img, "jpeg", f);
				tool.beep();
			} catch (Exception e1) {
				e1.printStackTrace();
			}

			break;

		case CALCULAR_MASA:
			float peso = Float.parseFloat(vista.getPeso());
			float altura = Float.parseFloat(vista.getAltura());
			float resultado = (float) FunctionsUtils.redondear(peso
					/ (altura * altura), 1);

			vista.setAlturaPeso(String.valueOf(resultado));
			vista.setColorResult(resultado);
			break;
		}
	}

}
